home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-08-18 | 10.1 KB | 334 lines | [TEXT/Moml] |
- local
- in
- datatype token =
- Tident of string
- | Tchar of char
- | Tstring of string
- | Taction of Syntax.location
- | Trule
- | Tparse
- | Tand
- | Tequal
- | Tend
- | Tor
- | Tunderscore
- | Teof
- | Tlbracket
- | Trbracket
- | Tstar
- | Tmaybe
- | Tplus
- | Tlparen
- | Trparen
- | Tcaret
- | Tdash
- end;
-
- open Obj Parsing;
- prim_val vector_ : int -> 'a -> 'a Vector.vector = 2 "make_vect";
- prim_val update_ : 'a Vector.vector -> int -> 'a -> unit = 3 "set_vect_item";
-
- open List Syntax Gram_aux;
- (* Line 7, file Grammar.sml *)
- val yytransl = #[
- 257 (* Tident *),
- 258 (* Tchar *),
- 259 (* Tstring *),
- 260 (* Taction *),
- 261 (* Trule *),
- 262 (* Tparse *),
- 263 (* Tand *),
- 264 (* Tequal *),
- 265 (* Tend *),
- 266 (* Tor *),
- 267 (* Tunderscore *),
- 268 (* Teof *),
- 269 (* Tlbracket *),
- 270 (* Trbracket *),
- 271 (* Tstar *),
- 272 (* Tmaybe *),
- 273 (* Tplus *),
- 274 (* Tlparen *),
- 275 (* Trparen *),
- 276 (* Tcaret *),
- 277 (* Tdash *),
- 0];
-
- val yylhs = "\255\255\
- \\001\000\002\000\002\000\003\000\003\000\004\000\005\000\006\000\
- \\006\000\007\000\008\000\008\000\008\000\008\000\008\000\008\000\
- \\008\000\008\000\008\000\008\000\008\000\009\000\009\000\010\000\
- \\010\000\010\000\000\000";
-
- val yylen = "\002\000\
- \\005\000\001\000\000\000\003\000\000\000\003\000\003\000\003\000\
- \\000\000\002\000\001\000\001\000\001\000\001\000\003\000\002\000\
- \\002\000\002\000\003\000\002\000\003\000\002\000\001\000\004\000\
- \\002\000\000\000\002\000";
-
- val yydefred = "\000\000\
- \\000\000\000\000\002\000\027\000\000\000\000\000\000\000\005\000\
- \\000\000\000\000\000\000\006\000\000\000\001\000\013\000\014\000\
- \\011\000\012\000\000\000\000\000\009\000\000\000\004\000\000\000\
- \\000\000\000\000\023\000\000\000\000\000\010\000\000\000\016\000\
- \\017\000\018\000\000\000\000\000\025\000\022\000\015\000\021\000\
- \\000\000\000\000\000\000\008\000\024\000";
-
- val yydgoto = "\002\000\
- \\004\000\005\000\010\000\008\000\012\000\029\000\021\000\035\000\
- \\026\000\027\000";
-
- val yysindex = "\004\000\
- \\007\255\000\000\000\000\000\000\009\255\012\255\021\255\000\000\
- \\025\255\001\255\004\255\000\000\012\255\000\000\000\000\000\000\
- \\000\000\000\000\255\254\004\255\000\000\040\255\000\000\002\255\
- \\034\255\031\255\000\000\022\255\036\255\000\000\004\255\000\000\
- \\000\000\000\000\057\255\045\255\000\000\000\000\000\000\000\000\
- \\004\255\057\255\034\255\000\000\000\000";
-
- val yyrindex = "\000\000\
- \\056\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
- \\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
- \\000\000\000\000\035\255\000\000\000\000\000\000\000\000\035\255\
- \\035\255\000\000\000\000\000\000\019\255\000\000\000\000\000\000\
- \\000\000\000\000\008\255\000\000\000\000\000\000\000\000\000\000\
- \\000\000\044\255\035\255\000\000\000\000";
-
- val yygindex = "\000\000\
- \\000\000\000\000\000\000\049\000\000\000\000\000\023\000\245\255\
- \\000\000\234\255";
-
- val YYTABLESIZE = 75;
- val yytable = "\022\000\
- \\024\000\037\000\038\000\024\000\001\000\015\000\016\000\013\000\
- \\028\000\014\000\003\000\020\000\007\000\006\000\017\000\018\000\
- \\019\000\020\000\025\000\042\000\045\000\020\000\036\000\015\000\
- \\016\000\007\000\020\000\007\000\009\000\022\000\011\000\031\000\
- \\017\000\018\000\019\000\024\000\032\000\033\000\034\000\020\000\
- \\040\000\015\000\016\000\030\000\039\000\041\000\043\000\019\000\
- \\026\000\031\000\017\000\018\000\019\000\019\000\032\000\033\000\
- \\034\000\020\000\015\000\016\000\003\000\023\000\019\000\044\000\
- \\000\000\000\000\000\000\017\000\018\000\019\000\000\000\032\000\
- \\033\000\034\000\020\000";
-
- val yycheck = "\011\000\
- \\002\001\024\000\025\000\002\001\001\000\002\001\003\001\007\001\
- \\020\000\009\001\004\001\004\001\001\001\005\001\011\001\012\001\
- \\013\001\010\001\020\001\031\000\043\000\018\001\021\001\002\001\
- \\003\001\007\001\019\001\009\001\008\001\041\000\006\001\010\001\
- \\011\001\012\001\013\001\002\001\015\001\016\001\017\001\018\001\
- \\019\001\002\001\003\001\004\001\014\001\010\001\002\001\004\001\
- \\014\001\010\001\011\001\012\001\013\001\010\001\015\001\016\001\
- \\017\001\018\001\002\001\003\001\005\001\013\000\019\001\041\000\
- \\255\255\255\255\255\255\011\001\012\001\013\001\255\255\015\001\
- \\016\001\017\001\018\001";
-
- val yyact = vector_ 28 (fn () => ((raise Fail "parser") : obj));
- (* Rule 1, file Grammar.grm, line 37 *)
- val _ = update_ yyact 1
- (fn () => repr(let
- val d__1__ = peekVal 4 : Syntax.location
- val d__3__ = peekVal 2 : string * (Syntax.regular_expression * Syntax.location) list
- val d__4__ = peekVal 1 : (string * (Syntax.regular_expression * Syntax.location) list) list
- in
- ( Lexdef((d__1__), (d__3__)::(rev (d__4__))) ) end : Syntax.lexer_definition))
- ;
- (* Rule 2, file Grammar.grm, line 41 *)
- val _ = update_ yyact 2
- (fn () => repr(let
- val d__1__ = peekVal 0 : Syntax.location
- in
- ( (d__1__) ) end : Syntax.location))
- ;
- (* Rule 3, file Grammar.grm, line 43 *)
- val _ = update_ yyact 3
- (fn () => repr(let
- in
- ( Location(0,0) ) end : Syntax.location))
- ;
- (* Rule 4, file Grammar.grm, line 47 *)
- val _ = update_ yyact 4
- (fn () => repr(let
- val d__1__ = peekVal 2 : (string * (Syntax.regular_expression * Syntax.location) list) list
- val d__3__ = peekVal 0 : string * (Syntax.regular_expression * Syntax.location) list
- in
- ( (d__3__)::(d__1__) ) end : (string * (Syntax.regular_expression * Syntax.location) list) list))
- ;
- (* Rule 5, file Grammar.grm, line 49 *)
- val _ = update_ yyact 5
- (fn () => repr(let
- in
- ( [] ) end : (string * (Syntax.regular_expression * Syntax.location) list) list))
- ;
- (* Rule 6, file Grammar.grm, line 53 *)
- val _ = update_ yyact 6
- (fn () => repr(let
- val d__1__ = peekVal 2 : string
- val d__3__ = peekVal 0 : (Syntax.regular_expression * Syntax.location) list
- in
- ( ((d__1__),(d__3__)) ) end : string * (Syntax.regular_expression * Syntax.location) list))
- ;
- (* Rule 7, file Grammar.grm, line 57 *)
- val _ = update_ yyact 7
- (fn () => repr(let
- val d__2__ = peekVal 1 : Syntax.regular_expression * Syntax.location
- val d__3__ = peekVal 0 : (Syntax.regular_expression * Syntax.location) list
- in
- ( (d__2__)::rev (d__3__) ) end : (Syntax.regular_expression * Syntax.location) list))
- ;
- (* Rule 8, file Grammar.grm, line 61 *)
- val _ = update_ yyact 8
- (fn () => repr(let
- val d__1__ = peekVal 2 : (Syntax.regular_expression * Syntax.location) list
- val d__3__ = peekVal 0 : Syntax.regular_expression * Syntax.location
- in
- ( (d__3__)::(d__1__) ) end : (Syntax.regular_expression * Syntax.location) list))
- ;
- (* Rule 9, file Grammar.grm, line 63 *)
- val _ = update_ yyact 9
- (fn () => repr(let
- in
- ( [] ) end : (Syntax.regular_expression * Syntax.location) list))
- ;
- (* Rule 10, file Grammar.grm, line 67 *)
- val _ = update_ yyact 10
- (fn () => repr(let
- val d__1__ = peekVal 1 : Syntax.regular_expression
- val d__2__ = peekVal 0 : Syntax.location
- in
- ( ((d__1__),(d__2__)) ) end : Syntax.regular_expression * Syntax.location))
- ;
- (* Rule 11, file Grammar.grm, line 71 *)
- val _ = update_ yyact 11
- (fn () => repr(let
- in
- ( Characters all_chars ) end : Syntax.regular_expression))
- ;
- (* Rule 12, file Grammar.grm, line 73 *)
- val _ = update_ yyact 12
- (fn () => repr(let
- in
- ( Characters [#"\000"] ) end : Syntax.regular_expression))
- ;
- (* Rule 13, file Grammar.grm, line 75 *)
- val _ = update_ yyact 13
- (fn () => repr(let
- val d__1__ = peekVal 0 : char
- in
- ( Characters [(d__1__)] ) end : Syntax.regular_expression))
- ;
- (* Rule 14, file Grammar.grm, line 77 *)
- val _ = update_ yyact 14
- (fn () => repr(let
- val d__1__ = peekVal 0 : string
- in
- ( regexp_for_string (d__1__) ) end : Syntax.regular_expression))
- ;
- (* Rule 15, file Grammar.grm, line 79 *)
- val _ = update_ yyact 15
- (fn () => repr(let
- val d__2__ = peekVal 1 : char list
- in
- ( Characters (d__2__) ) end : Syntax.regular_expression))
- ;
- (* Rule 16, file Grammar.grm, line 81 *)
- val _ = update_ yyact 16
- (fn () => repr(let
- val d__1__ = peekVal 1 : Syntax.regular_expression
- in
- ( Repetition (d__1__) ) end : Syntax.regular_expression))
- ;
- (* Rule 17, file Grammar.grm, line 83 *)
- val _ = update_ yyact 17
- (fn () => repr(let
- val d__1__ = peekVal 1 : Syntax.regular_expression
- in
- ( Alternative((d__1__), Epsilon) ) end : Syntax.regular_expression))
- ;
- (* Rule 18, file Grammar.grm, line 85 *)
- val _ = update_ yyact 18
- (fn () => repr(let
- val d__1__ = peekVal 1 : Syntax.regular_expression
- in
- ( Sequence((d__1__), Repetition (d__1__)) ) end : Syntax.regular_expression))
- ;
- (* Rule 19, file Grammar.grm, line 87 *)
- val _ = update_ yyact 19
- (fn () => repr(let
- val d__1__ = peekVal 2 : Syntax.regular_expression
- val d__3__ = peekVal 0 : Syntax.regular_expression
- in
- ( Alternative((d__1__),(d__3__)) ) end : Syntax.regular_expression))
- ;
- (* Rule 20, file Grammar.grm, line 89 *)
- val _ = update_ yyact 20
- (fn () => repr(let
- val d__1__ = peekVal 1 : Syntax.regular_expression
- val d__2__ = peekVal 0 : Syntax.regular_expression
- in
- ( Sequence((d__1__),(d__2__)) ) end : Syntax.regular_expression))
- ;
- (* Rule 21, file Grammar.grm, line 91 *)
- val _ = update_ yyact 21
- (fn () => repr(let
- val d__2__ = peekVal 1 : Syntax.regular_expression
- in
- ( (d__2__) ) end : Syntax.regular_expression))
- ;
- (* Rule 22, file Grammar.grm, line 95 *)
- val _ = update_ yyact 22
- (fn () => repr(let
- val d__2__ = peekVal 0 : char list
- in
- ( subtract all_chars (d__2__) ) end : char list))
- ;
- (* Rule 23, file Grammar.grm, line 97 *)
- val _ = update_ yyact 23
- (fn () => repr(let
- val d__1__ = peekVal 0 : char list
- in
- ( (d__1__) ) end : char list))
- ;
- (* Rule 24, file Grammar.grm, line 101 *)
- val _ = update_ yyact 24
- (fn () => repr(let
- val d__1__ = peekVal 3 : char
- val d__3__ = peekVal 1 : char
- val d__4__ = peekVal 0 : char list
- in
- ( char_class (d__1__) (d__3__) @ (d__4__) ) end : char list))
- ;
- (* Rule 25, file Grammar.grm, line 103 *)
- val _ = update_ yyact 25
- (fn () => repr(let
- val d__1__ = peekVal 1 : char
- val d__2__ = peekVal 0 : char list
- in
- ( (d__1__) :: (d__2__) ) end : char list))
- ;
- (* Rule 26, file Grammar.grm, line 105 *)
- val _ = update_ yyact 26
- (fn () => repr(let
- in
- ( [] ) end : char list))
- ;
- (* Entry lexer_definition *)
- val _ = update_ yyact 27 (fn () => raise yyexit (peekVal 0));
- val yytables : parseTables =
- ( yyact,
- yytransl,
- yylhs,
- yylen,
- yydefred,
- yydgoto,
- yysindex,
- yyrindex,
- yygindex,
- YYTABLESIZE,
- yytable,
- yycheck );
- fun lexer_definition lexer lexbuf = yyparse yytables 1 lexer lexbuf;
- (* Line 109, file Grammar.grm *)
-
- (* Line 283, file Grammar.sml *)
-